package com.softeem.music_sys.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.softeem.music_sys.comm.Result;
import com.softeem.music_sys.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;

/**
* @author RD
* @description 针对表【user(用户信息表)】的数据库操作Service
* @createDate 2025-11-07 11:19:17
*/
public interface UserService extends IService<User> {

    /**
     * 用户注册
     */
    Result register(User user);

    /**
     * 用户登录
     */
    Result login(String username, String password);

    /**
     * 搜索用户
     */
    Page<User> searchUsers(String keyword, Integer page, Integer limit);

    /**
     * 修改用户状态
     */
    boolean updateStatus(Integer userId, Integer status);
    
    /**
     * 用户注册（内部调用）
     */
    boolean registerInternal(User user);
    
    /**
     * 用户登录（内部调用）
     */
    User loginInternal(String username, String password);
    
    /**
     * 创建用户
     */
    Result addUser(User user);
    
    /**
     * 根据ID获取用户信息
     */
    Result getUserById(Integer id);
    
    /**
     * 更新用户信息
     */
    Result update(User user);
    
    /**
     * 删除用户
     */
    Result delete(Integer id);
    
    /**
     * 获取用户列表
     */
    Result getUserList(Integer page, Integer limit);
    
    /**
     * 搜索用户（Controller调用）
     */
    Result searchUsersController(String username, Integer page, Integer limit);
    
    /**
     * 修改用户状态（Controller调用）
     */
    Result updateStatusController(Integer id, Integer status);
    
    /**
     * 创建测试用户
     */
    Result createTestUser();
}